import axios from 'axios';
import { Toast } from 'antd-mobile';
import { message } from 'antd';

let request = axios.create();

// 添加请求拦截器
request.interceptors.request.use(
  function (config) {
    // 在发送请求之前做些什么
    // const filterApis = ['/api/user/login', '/api/user/zzd/login', '/api/user/zlb/user/notice'];
    config.headers.Authorization = localStorage.getItem('token');
    return config;
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

// 添加响应拦截器
request.interceptors.response.use(
  function (response) {
    // 对响应数据做点什么
    // console.log('response', response);
    if (response.status === 200) {
      if (response.data.code === 1000) {
        message.error(response.data.data.message);
        return Promise.reject(response.data);
      }
      if (response.data.code !== 200) {
        message.error('服务器错误：' + response.data.data.message);
        return Promise.reject(response.data);
      }

      // console.log(response);
      return response.data;
    }

    // http状态码错误
    console.error('http状态码的错误', response);

    return Promise.reject({ msg: '服务器响应失败！' });
  },
  function (error) {
    console.error('请求响应失败：', error.response);

    if (error.response.status === 401) {
      message.error('用户信息已过期，请重新登录');
      window.location.replace('#/login');
      return Promise.reject({ msg: '服务器响应失败！' });
    }
    message.error('服务器繁忙' + error.response.status);
    // 对响应错误做点什么
    return Promise.reject(error);
  }
);

export default request;
